<?php

if(!isset($ruta_raiz))
	$ruta_raiz="../../";
elseif(!strpos($ruta_raiz,"/"))
 	$ruta_raiz.="/";
require_once("IRadicadoDAO.php");
include_once($ruta_raiz."JBPM/MODEL/Connection/Connection.php");
include_once($ruta_raiz."JBPM/MODEL/Connection/ConnectionException.php");
require_once($ruta_raiz."JBPM/MODEL/funcionesAuxiliares/auxRadAnexos.php");

class RadicadoDAO implements IRadicadoDAO {
		private $db;	
		public function RadicadoDAO(){
			$this->db = Connection::getCurrentInstance();
		}
		public function radicarAnexo($codAnexo,$numRadicado,$usuaLogin){
			$db=$this->db;
			try{
				$numeroGenerado=radicarAnexo($codAnexo,$numRadicado,$usuaLogin);
			}catch (Exception $e){
				throw $e; 
			}
			return $numeroGenerado;
		}
		public function consultarInfoRadicado($numRadicado){
			$salida="";
			$consulta="SELECT 
							  TD.SGD_TPR_DESCRIP, R.RADI_CUENTAI,R.RADI_NUME_HOJA,R.RADI_FECH_RADI, R.RA_ASUN,
							  CI.SGD_CIU_NOMBRE,CI.SGD_CIU_APELL1,CI.SGD_CIU_APELL2,CI.SGD_CIU_CEDULA,
							  OEM.SGD_OEM_OEMPRESA,ESP.NOMBRE_DE_LA_EMPRESA,ESP.NOMBRE_REP_LEGAL,
							  ESPR.NOMBRE_DE_LA_EMPRESA as EMPRESA_RADICADO,ESPR.NOMBRE_REP_LEGAL as REPRESENTANTE_RADICADO,
							  D.SGD_DIR_NOMREMDES,D.SGD_DIR_DIRECCION,D.SGD_DIR_TIPO,DEP.DPTO_NOMB,
							  MUN.MUNI_NOMB,DEPE.DPTO_NOMB as DEPE ,MUNE.MUNI_NOMB as MUNE,ESPR.DIRECCION,SGD_TPR_CODIGO
						FROM 
							 RADICADO R INNER JOIN SGD_DIR_DRECCIONES D ON D.RADI_NUME_RADI=R.RADI_NUME_RADI
							 LEFT JOIN  BODEGA_EMPRESAS ESP ON D.SGD_ESP_CODI=ESP.IDENTIFICADOR_EMPRESA
							 LEFT JOIN  BODEGA_EMPRESAS ESPR ON R.EESP_CODI=ESPR.IDENTIFICADOR_EMPRESA
							 LEFT JOIN  SGD_CIU_CIUDADANO CI ON (CI.SGD_CIU_CODIGO =D.SGD_CIU_CODIGO AND CI.SGD_CIU_CODIGO  >0)
							 LEFT JOIN  SGD_OEM_OEMPRESAS OEM ON (OEM.SGD_OEM_CODIGO=D.SGD_OEM_CODIGO  AND OEM.SGD_OEM_CODIGO  >0)
							 LEFT JOIN  SGD_TPR_TPDCUMENTO TD ON R.TDOC_CODI=TD.SGD_TPR_CODIGO
							 INNER JOIN DEPARTAMENTO DEP ON DEP.DPTO_CODI =D.DPTO_CODI AND DEP.ID_PAIS=D.ID_PAIS
							 INNER JOIN MUNICIPIO MUN ON MUN.MUNI_CODI=D.MUNI_CODI AND MUN.DPTO_CODI =D.DPTO_CODI
							 LEFT JOIN DEPARTAMENTO DEPE ON DEPE.DPTO_CODI =ESPR.CODIGO_DEL_DEPARTAMENTO AND DEPE.ID_PAIS=D.ID_PAIS
							 LEFT JOIN MUNICIPIO MUNE ON MUNE.MUNI_CODI=ESPR.CODIGO_DEL_MUNICIPIO AND MUNE.DPTO_CODI =ESPR.CODIGO_DEL_DEPARTAMENTO
						WHERE 
							R.RADI_NUME_RADI={$numRadicado}	
							AND D.SGD_DIR_TIPO < 4";
			$resultado=$this->db->query($consulta);
			while($resultado && !$resultado->EOF){
				$salida[$resultado->fields['SGD_DIR_TIPO']]['tipoDocumento']=$resultado->fields['SGD_TPR_DESCRIP'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['asunto']=$resultado->fields['RA_ASUN'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['numHojas']=$resultado->fields['RADI_NUME_HOJA'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['nomCiudadano']=$resultado->fields['SGD_CIU_NOMBRE'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['apeCiudadano']=$resultado->fields['SGD_CIU_APELL1']." ".$resultado->fields['SGD_CIU_APELL2'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['idenCiudadano']=$resultado->fields['SGD_CIU_CEDULA'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['nomEmpresa']=$resultado->fields['SGD_OEM_OEMPRESA'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['esp']=$resultado->fields['EMPRESA_RADICADO'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['representante']=$resultado->fields['REPRESENTANTE_RADICADO'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['dirdestinatario']=$resultado->fields['SGD_DIR_DIRECCION'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['nomDestinatario']=$resultado->fields['SGD_DIR_NOMREMDES'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['tipoRadicado']=$resultado->fields['SGD_TPR_CODIGO'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['departamento']=$resultado->fields['DPTO_NOMB'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['municipio']=$resultado->fields['MUNI_NOMB'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['municipioESP']=$resultado->fields['MUNE'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['departamentoESP']=$resultado->fields['DEPE'];
				$salida[$resultado->fields['SGD_DIR_TIPO']]['dirESP']=$resultado->fields['DIRECCION'];
				$resultado->MoveNext();
			}
			
			return $salida;
		}
		public function imprimirRadicado($numeroRadicado){
			$salida=null;
			$estadoActual=$this->consultarEstado($numeroRadicado);
			$consulta="UPDATE ANEXO SET ANEX_ESTADO=3 WHERE RADI_NUME_SALIDA = $numeroRadicado";
			if($estadoActual == 2 ){
				$rs=$this->db->query($consulta);	
				$salida="documento {$numeroRadicado} fue impreso.";
			}else{
				$salida="documento {$numeroRadicado} ya fue impreso.";
			}
			return $salida;
		}
		public function consultarEstado($numeroRadicado){
			$consulta="select ANEX_ESTADO FROM ANEXO WHERE RADI_NUME_SALIDA = $numeroRadicado";
			$rs=$this->db->query($consulta);
			$salida=$rs->fields['ANEX_ESTADO'];
			return $salida;			
		}
		public function solicitarAnulacion($numeroRadicado,$usuaLogin){
		  $salida="No imprlentado"	;
		  return $salida;
		}
		public function estaDigitalizado($numRadicado){
			$salida="no";
			$consulta="SELECT RADI_PATH FROM RADICADO WHERE RADI_NUME_RADI={$numRadicado}";
			$resultado=$this->db->query($consulta);
			if($resultado && !$resultado->EOF){
				$salida=(($resultado->fields['RADI_PATH']!="") && 
						 (strtolower(substr($resultado->fields['RADI_PATH'],-3))=="tif"))?"si":"no";
			}
			return $salida;
		}
	
	}

